#ifndef io_device__
#define io_device__

#include <stdlib.h>
#include <stdio.h>
#include "globals.h"


//process at the head of the queue, is the process whose io request is being processed currently.
typedef struct io_dev {
        int size;
		int count;
		char name[10];
        PCBStr *head;
        PCBStr *tail;
} io_device;

io_device* video_io;
io_device* disk_io;

io_device* create_io_device();

void set_up_disk();

void set_up_video();

void add_pcb_io_blocked_queue(PCBStr *pcb, io_device *device);

void process_next_process_blocked_queue(io_device *device);

#include "io_device.c"

#endif
